package com.jh.service;


import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jh.dto.*;
import com.jh.entity.InventoryTransaction;
import com.jh.entity.Product;
import com.jh.entity.ProductDetail;
import com.jh.result.PageResult;
import com.jh.vo.InventoryTransactionDetails;
import com.jh.vo.InventoryTransactionVO;

import java.util.List;

public interface InventoryService {
    /**
     * 商品分页查询
     *
     * @param productPageQueryDTO
     */
    PageResult page(ProductPageQueryDTO productPageQueryDTO);

    /**
     * 商品删除
     * @param ids
     */
    void deleteBatch(List<Long> ids);

    /**
     * 商品修改
     *
     * @param product
     */
    void update(Product product);


    /**
     * 入库
     * @param dto
     */
    void processInbound(InventoryTransactionSaveDTO dto);

    /**
     * 出库
     * @param dto
     */
    void processOutbound(InventoryTransactionSaveDTO dto);

    /**
     * 判断库存中kuCode是否存在
     *
     * @param skuCode
     * @return
     */
    Boolean check(String skuCode);

    ProductDetail getSkuDetail(String skuCode);

    Page<InventoryTransactionVO> getInventoryTransaction(InventoryTransactionSelectDTO pageQueryDTO);

    List<InventoryTransactionDetails> getInventoryTransactionDetails(Long inventoryTransactionId);

    void checkInventoryTransaction(Long inventoryTransactionId, Integer status);
}
